package com.Archive.secondWeek;

import java.util.Scanner;

/*
 * 输入数字，并将数字插入一个从小到大排序的数组中间
 *
 * */

public class intToArray {

    public int compare(int[] arr, int input) {      //定义类，接收数组与输入变量
        int find;                                   //定义位置变量find
        for (find = 0; find < arr.length; find++) { //将输入变量依次与数组中的数据进行比较
            if (arr[find] > input) {                //找到位置，跳出
                break;
            }
        }
        return find;    //返回输入数字应该所在的位置
    }

    //  Int插入Array方法
    //  ｜ 数组 ｜ 插入数值 ｜ 数组 ｜
    //     ｜       ｜       ｜
    //     1        2       3
    //  ｜ ------  新数组 ------- ｜
    //
    //                          ｜ 数组    ｜ 插入数值  ｜ 插入位置  ｜
    public int[] arrayInt_insert(int arr[], int insert, int j) {
        int[] arrCache = new int[arr.length + 1];   //定义一个比原数组多一个位置的数组

        for (int jCacheA = 0; jCacheA < j; jCacheA++) { // 原数组插入位置之前的变量赋值给新数组
            arrCache[jCacheA] = arr[jCacheA];
        }

        arrCache[j] = insert;                           // 插入变量
        for (int jCacheB = j; jCacheB < arr.length; jCacheB++) {    // 继续赋值之后的变量
            arrCache[jCacheB + 1] = arr[jCacheB];
        }
        return arrCache;    //返回新的数组
    }

    public static void main(String[] args) {

        intToArray t = new intToArray();
        Scanner sc = new Scanner(System.in);    //引用

        int[] arr = {1, 5, 12, 24, 32, 51, 76}; //定义初始数组
        int input = sc.nextInt();               //输入数字
        int find = t.compare(arr, input);       //引用对比数组大小方法
        for (int p : t.arrayInt_insert(arr, input, find)) { //循环输出传递回来的数组
            System.out.println(p);
        }

    }
}
